In the early days of microprocessor based computers, most visual display systems provided a monochrome display. That is, a pixel on a visual display screen could be represented by a single bit stored in a raster memory. As such, display routines for such systems offered image manipulation at the bit level. That is, because data stored in raster memory was either a 1 or a 0 at each pixel position, writing or reading from raster memory, and manipulation of the data from raster memory, was a simple process.
In such image manipulation routines, new information could be written into memory in direct as well as more sophisticated ways. For example, the data in memory simply could be written over by new data. Alternatively, the existing data in memory could be read-out, then logically combined with the new data to be written-in, with the result of the logical operation being the actual data written into memory. Typically, the logical operations were the basic AND, NOT, XOR, or OR boolean logic operations.
An OR logical operator could be used to place an object onto a background of unknown value. An AND logical operation could be used to place a bit pattern onto a reverse-video field. An XOR logical operation could be used to place and erase a dot or a mask. A NOT could be used to compliment the value of the data.
More recently, as microcomputer display systems have become more sophisticated, color monitors have come into more widespread use. Unfortunately, the displaying of color information on a monitor requires significantly more information per pixel than is required for monochrome displays. While a monochrome display could be satisfactorily provided with a single bit per pixel, color displays typically require four or more bits per pixel. Not only is the raster memory required to increase in size, but the traditional manipulation of data from the raster memory by way of logical operations in the control processing unit become much more difficult. For example, the ANDing of a word of data designing the color of a pixel against a reference color would require a multiplicity of AND operations, as opposed to a single AND operation in the monochrome case.
When such increased logical operation requirement was performed in the central processing unit ("CPU"), this greatly slowed the execution time of the central processing unit. Traditionally, in order to solve such a problem, hardware which performed the logical operations was provided so that the CPU was freed of heavy computational loads. The problem with such an arrangement is that software written for monochrome display systems would not operate properly with such color systems. This is because the software written for monochrome systems assumed that logical operations were available within the CPU. No provision for requesting hardware logical operations would be provided in such software.
This resulted in an incompatibility of software written for monochrome systems when the user attempted operation of such software on color systems. Likewise, software written for color systems could not be used on monochrome systems.
It is therefore clear that it is highly desirable to provide a color display system which is compatible with monochrome software, and conversely to provide a color system in which software written for such color system could also be run on a monochrome system.